package cn.hd.dao;

import cn.hd.entity.ProductLevel;
import cn.hd.entity.Productdetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ProductdetailDao {
    //修改状态值  成功！
    public int updateStatusSuccess(long id);
    //修改状态值  失败
    public int updateStatusFailed(long id);
    //查询所有
    public List<Productdetail> selectProductdetail(Map map);
    //查询众筹完成
    public List<Productdetail> selectProductdetailSuccess();
    //查询众筹中
    public List<Productdetail> selectProductdetailIng();
    //查询众筹失败
    public List<Productdetail> selectProductdetailFailed();
    //查询众筹钱最多
    public List<Productdetail> selectByMoney(long state);
    //查询众筹人数最多
    public List<Productdetail> selectByPerson(long state);
    //最近发布
    public List<Productdetail> selectDateNow(long state);
    //根据pid查项目
    public Productdetail selectByPid(long pid);
    //根据id查询
    public Productdetail selectProductDetailById(long id);
    //根据状态查询
    public List<Productdetail> selectProductdetailByState(Map map);
    //审核通过
    public int updateStatuSuccess(long pid);
    //审核不通过
    public int updateStatuFailed(long pid);
//    根据pid查询二级分类
    public String selectByPidAndId(long pid);
    //查询审核不通过的
    public List<Productdetail> selectByProShenhe(long uid);
    //修改状态值为0
    public int updateProState(long pid);
    //逻辑删除项目
    public int delProStatus(long pid);
    //删除中间表
    public int deluserPocduct(long pid);


    //根据一级name查询二级分类
    public List<ProductLevel> selectProductOneBytwo(String name);
    //添加关注
    public int addguanzhu(@Param("uid") long uid,@Param("pid")long pid);
    //往项目信息中添加发起人信息
    public String selectUserNamePro(long pid);



    //zjc --- 开始
    //查看我发起的项目
    public List<Productdetail> selectFQPro(@Param("uid") Integer uid, @Param("state") Integer state);

    public List<Productdetail> selectProByUid(int uid);

    public int quxiaoguanzhu(@Param("uid") int uid, @Param("pid")int pid);

    public int addProduct(Productdetail productdetail);

    public int addFQpro(@Param("uid") long uid,@Param("productid") long productid);
    //查询分类所占数量
    public List<Integer> selectFLzbaa();
    //查分类名称
    public List<String> selectFLmc();
    //删除项目详情
    public int deleteProxqbyPid(long pid);
    //删除用户与项目详情中间表
    public int deleteProUserbyPid(@Param("uid") long uid,@Param("pid") long pid);
    //查询一级分类对象
    public List<ProductLevel> selectYJ();
    //查询一级及其对应的二级分类总和
    public int selectye(long id);
    //通过项目名称查项目详情
    public Productdetail selectAllByXiamgMuname(String xnname);
    //
//    通过名字修改其价格
    public int updatselectPricenumBypnaem(@Param("pname") String pname,@Param("price") double price);
    //支持人数加1
    public int updateZCjia1(String pname);
}
